5 DIM SHIP(430),SHIP1(430)
10 CLS:KEY OFF:SCREEN 1:COLOR 1,0
50 LINE (50,181)-(270,199),1,BF
52 LINE (185,55)-(210,180),1,B
54 LINE (185,80)-(210,105),1,B
56 LINE (185,130)-(210,155),1,B
58 LINE (185,30)-(210,55),1,B
60 LINE (185,30)-(210,55),1
62 LINE (185,55)-(210,30),1
64 LINE (185,55)-(210,80),1
66 LINE (185,80)-(210,55),1
68 LINE (185,80)-(210,105),1
70 LINE (185,105)-(210,80),1
72 LINE (185,105)-(210,130),1
74 LINE (185,130)-(210,105),1
76 LINE (185,130)-(210,155),1
78 LINE (185,155)-(210,130),1
80 LINE (185,155)-(210,180),1
82 LINE (185,180)-(210,155),1
100 CIRCLE (185,100),60,3,3.14-.75,3.14,1.5
110 CIRCLE (125,100),60,3,0,.75,1.5
120 LINE(145,100)-(145,170),3
130 LINE(165,100)-(165,170),3
140 LINE(145,170)-(165,170),3
145 PAINT (146,169),2,3
150 LINE (145,140)-(135,150),3
152 LINE (135,150)-(135,180),3
154 LINE (135,180)-(145,170),3
155 PAINT (136,170),2,3
160 LINE (165,140)-(175,150),3
162 LINE (175,150)-(175,180),3
164 LINE (175,180)-(165,170),3
165 PAINT (166,170),2,3
200 A=11:B=20
201 LOCATE A,B:PRINT"I"
202 LOCATE A+1,B:PRINT"B"
203 LOCATE A+2,B:PRINT"M"
204 LOCATE A+3,B:PRINT" "
205 LOCATE A+4,B:PRINT"S"
206 LOCATE A+5,B:PRINT"H"
207 LOCATE A+6,B:PRINT"U"
208 LOCATE A+7,B:PRINT"T"
209 LOCATE A+8,B:PRINT"T"
210 LOCATE A+9,B:PRINT"L"
211 LOCATE A+10,B:PRINT"E"
490 II=0:FOR I=1 TO 100:II=II+1:NEXT I
491 LINE (50,181)-(270,199),0,BF
492 LINE (145,170)-(155,198),3
494 LINE (165,170)-(155,198),3
496 PAINT (155,190),3,3
500 GET (132,58)-(179,199),SHIP
504 PUT(132,58),SHIP,XOR
505 LINE (50,181)-(270,199),1,BF
506 PUT(132,58),SHIP,XOR
507 A=58:K=0
508 FOR I=1 TO 63
510 B=INT((I/10)^3)-INT(((I-1)/10)^3)
511 IF I<16 THEN GOSUB 600
512 IF (A-B)<0 THEN GOSUB 530:GOTO 517
515 GOSUB 520
517 NEXT I
518 GOTO 700
520 PUT(132,A),SHIP,XOR
523 PUT(132,A-B),SHIP,XOR
525 A=A-B
526 RETURN
530 IF (K MOD 2)=0 GOTO 542
532 GET (132,B-A)-(179,B-A+142),SHIP
534 PUT (132,A),SHIP1,XOR
536 PUT (132,0),SHIP,XOR
538 GOTO 550
542 GET (132,B-A)-(179,B-A+142),SHIP1
544 PUT (132,A),SHIP,XOR
546 PUT (132,0),SHIP1,XOR
550 A=0:K=K+1
552 RETURN
600 ON I GOTO 601,602,603,604,605,606,607,608,609,610,611,612,613,614,615
601 X=15:Y=193:R=6:GOTO 698
602 X=22:Y=190:R=9:GOTO 698
603 X=32:Y=190:R=9:GOTO 698
604 X=42:Y=185:R=11:GOTO 698
605 X=54:Y=185:R=11:GOTO 698
606 X=66:Y=185:R=11:GOTO 698
607 X=60:Y=170:R=11:GOTO 698
608 X=71:Y=165:R=15:GOTO 698
609 X=90:Y=185:R=14:GOTO 698
610 X=90:Y=155:R=13:GOTO 698
611 X=100:Y=168:R=16:GOTO 698
612 X=115:Y=185:R=11:GOTO 698
613 X=115:Y=155:R=25:GOTO 698
614 X=128:Y=185:R=11:GOTO 698
615 X=133:Y=135:R=15:GOTO 698
698 CIRCLE (155-X,Y),R,3,,,1:CIRCLE (155+X,Y),R,3,,,1:PAINT(155-X,Y),3,3:PAINT(155+X,Y),3,3
699 RETURN
700 REM this is BASICMOV
710 ' BASIC DEMO TO USE CALL FUNCTION
720 '      USES AN ASSEMBLER SUBROUTINE TO MOVE
730 '      UP TO 65535 BYTES IN MEMORY
740 N=10:REM number of frames to show, starting at highmemory(256k)
750 KEY OFF
760 'DEFINE SEGMENT TO PLACE THE ASSEMBLER CODE
770 DEF SEG=&H1200
780 ' THIS TEST IF IT IS ALREADY LOADED, IF NOT IT LOADS IT
790 BLOAD"mcode.%%%",0
800 SUBRT = 0
810 ' A% = THE FROM ADDRESS
820 ' B% = THE TO ADDRESS
830 ' C% = THE LENGTH TO MOVE
840 GOSUB 980:REM TURN ON COLOR SCREEN
850 DEF SEG=&H1200
860 KEY OFF:SCREEN 1:COLOR 1,0
870 FOR DISP=1 TO N
880 MEMDEL=DISP*1024
890 MEMORY=16384-MEMDEL
900 A%=MEMORY
910 B%=&HB800
920 C%=&H4000
930 CALL SUBRT (A%,B%,C%)
940 FOR PAUSE=1 TO 1000:NEXT
950 NEXT
952 GOSUB 1100
955 LOCATE 25,1:FOR EARTHMOVE=1 TO 25:PRINT "   ":FOR PAUSE=1 TO 700:NEXT
956 FOR STAR=1 TO 6:PSET(RND*320,180)
957 NEXT STAR
958 NEXT EARTHMOVE
960  RUN"flyby
970 REM switch to color/graphics adapter
980 DEF SEG=0
990 POKE &H410,(PEEK(&H410) AND &HCF) OR &H20
1000 DEF SEG
1010 LOCATE ,,1,6,7
1020 SCREEN 0
1030 WIDTH 40
1040 RETURN
1100 CIRCLE(160,1),225
1105 COLOR 8,
1150 RETURN
